#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>

void swap(int *a, int *b)
{
    int temp;
    temp = *a;
    *a = *b;
    *b = temp;
}
void printArray(int *arr, int size)
{
    for (int i = 0; i < size; i++)
        printf("%d ", arr[i]);
    putchar('\n');
}
void permute(int *arr, int begin, int end)
{
    if (begin == end) // 递归出口
    {
        printArray(arr, end + 1);
        return;
    }
    for (int i = begin; i <= end; i++)
    {
        swap(&arr[i], &arr[begin]);
        permute(arr, begin + 1, end);
        swap(&arr[i], &arr[begin]);
    }
}
int main()
{
    int n;
    scanf("%d", &n);
    int arr[n];
    for (int i = 0; i < n; i++)
        scanf("%d", &arr[i]);
    permute(arr, 0, n - 1);
    return 0;
}